//1. 启动喧喧APP


@BeforeTest
public void setUp() throws MalformedURLException {
    // 设置DesiredCapabilities
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName", "Android Emulator");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("appPackage", "com.xuan");
    capabilities.setCapability("appActivity", "com.xuan.MainActivity");

    // 启动Appium服务
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

//2. 关闭喧喧APP


@AfterTest
public void tearDown() {
    // 关闭Appium服务
    driver.quit();
}


//3. 测试登录功能

@Test
public void testLogin() {
    // 点击登录按钮
    driver.findElement(By.id("com.xuan:id/btn_login")).click();

    // 输入用户名和密码
    driver.findElement(By.id("com.xuan:id/et_username")).sendKeys("test");
    driver.findElement(By.id("com.xuan:id/et_password")).sendKeys("123456");

    // 点击登录按钮
    driver.findElement(By.id("com.xuan:id/btn_confirm")).click();

    // 验证登录成功
    String expectedText = "欢迎使用喧喧";
    String actualText = driver.findElement(By.id("com.xuan:id/tv_title")).getText();
    Assert.assertEquals(actualText, expectedText);
}


//4. 测试发送消息功能

@Test
public void testSendMessage() {
    // 点击联系人列表中的第一个联系人
    driver.findElement(By.id("com.xuan:id/rl_contacts")).click();
    driver.findElement(By.id("com.xuan:id/tv_name")).click();

    // 输入消息内容
    driver.findElement(By.id("com.xuan:id/et_message")).sendKeys("Hello, World!");

    // 点击发送按钮
    driver.findElement(By.id("com.xuan:id/btn_send")).click();

    // 验证消息发送成功
    String expectedText = "Hello, World!";
    String actualText = driver.findElement(By.id("com.xuan:id/tv_message")).getText();
    Assert.assertEquals(actualText, expectedText);
}

//5. 测试添加好友功能

@Test
public void testAddFriend() {
    // 点击通讯录按钮
    driver.findElement(By.id("com.xuan:id/btn_contacts")).click();

    // 点击添加好友按钮
    driver.findElement(By.id("com.xuan:id/btn_add_friend")).click();

    // 输入好友用户名
    driver.findElement(By.id("com.xuan:id/et_username")).sendKeys("test");

    // 点击搜索按钮
    driver.findElement(By.id("com.xuan:id/btn_search")).click();

    // 验证搜索结果
    String expectedText = "test";
    String actualText = driver.findElement(By.id("com.xuan:id/tv_username")).getText();
    Assert.assertEquals(actualText, expectedText);

    // 点击添加好友按钮
    driver.findElement(By.id("com.xuan:id/btn_add_friend")).click();

    // 验证添加好友成功
    expectedText = "好友请求已发送";
    actualText = driver.findElement(By.id("com.xuan:id/tv_message")).getText();
    Assert.assertEquals(actualText, expectedText);
}


//6. 测试删除好友功能

@Test
public void testDeleteFriend() {
    // 点击通讯录按钮
    driver.findElement(By.id("com.xuan:id/btn_contacts")).click();

    // 点击好友列表中的第一个好友
    driver.findElement(By.id("com.xuan:id/rl_friend")).click();

    // 点击删除好友按钮
    driver.findElement(By.id("com.xuan:id/btn_delete")).click();

    // 点击确认按钮
    driver.findElement(By.id("android:id/button1")).click();

    // 验证删除成功
    String expectedText = "好友删除成功";
    String actualText = driver.findElement(By.id("com.xuan:id/tv_message")).getText();
    Assert.assertEquals(actualText, expectedText);
}


//7. 测试创建群组功能

@Test
public void testCreateGroup() {
    // 点击通讯录按钮
    driver.findElement(By.id("com.xuan:id/btn_contacts")).click();

    // 点击创建群组按钮
    driver.findElement(By.id("com.xuan:id/btn_create_group")).click();

    // 输入群组名称
    driver.findElement(By.id("com.xuan:id/et_group_name")).sendKeys("Test Group");

    // 点击确认按钮
    driver.findElement(By.id("android:id/button1")).click();

    // 验证创建群组成功
    String expectedText = "Test Group";
    String actualText = driver.findElement(By.id("com.xuan:id/tv_group_name")).getText();
    Assert.assertEquals(actualText, expectedText);
}


//8. 测试加入群组功能

@Test
public void testJoinGroup() {
    // 点击通讯录按钮
    driver.findElement(By.id("com.xuan:id/btn_contacts")).click();

    // 点击群组列表中的第一个群组
    driver.findElement(By.id("com.xuan:id/rl_group")).click();

    // 点击加入群组按钮
    driver.findElement(By.id("com.xuan:id/btn_join")).click();

    // 点击确认按钮
    driver.findElement(By.id("android:id/button1")).click();

    // 验证加入群组成功
    String expectedText = "已加入群组";
    String actualText = driver.findElement(By.id("com.xuan:id/tv_message")).getText();
    Assert.assertEquals(actualText, expectedText);
}

//9. 测试退出群组功能


@Test
public void testLeaveGroup() {
    // 点击通讯录按钮
    driver.findElement(By.id("com.xuan:id/btn_contacts")).click();

    // 点击群组列表中的第一个群组
    driver.findElement(By.id("com.xuan:id/rl_group")).click();

    // 点击退出群组按钮
    driver.findElement(By.id("com.xuan:id/btn_leave")).click();

    // 点击确认按钮
    driver.findElement(By.id("android:id/button1")).click();

    // 验证退出群组成功
    String expectedText = "已退出群组";
    String actualText = driver.findElement(By.id("com.xuan:id/tv_message")).getText();
    Assert.assertEquals(actualText, expectedText);
}


//10. 测试注销功能


@Test
public void testLogout() {
    // 点击个人中心按钮
    driver.findElement(By.id("com.xuan:id/btn_profile")).click();

    // 点击注销按钮
    driver.findElement(By.id("com.xuan:id/btn_logout")).click();

    // 点击确认按钮
    driver.findElement(By.id("android:id/button1")).click();

    // 验证注销成功
    String expectedText = "欢迎使用喧喧";
    String actualText = driver.findElement(By.id("com.xuan:id/tv_title")).getText();
    Assert.assertEquals(actualText, expectedText);
}

